Javascript toFixed 不舍入
全部标签 我有一个包含一列float64值的Pandas数据框:tempDF=pd.DataFrame({'id':[12,12,12,12,45,45,45,51,51,51,51,51,51,76,76,76,91,91,91,91],'measure':[3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1,2.4,3.5,4.2,5.2,4.3,3.6,5.2,7.1,6.5,7.3]})我想创建一个仅包含整数部分的新列。我的第一个想法是使用.astype(int):tempDF['int_measure']=tempDF['measure'].astype(i
在Python2.7.2中,我得到自纪元以来的秒数:sec_since_epoch=(date_obj-datetime(1970,1,1,0,0)).total_seconds()现在我想将这些秒数四舍五入到最近的一天,例如如果:datetime.fromtimestamp(sec_since_epoch)对应于datetime(2013,12,14,5,0,0)我希望新的时间戳对应于datetime(2013,12,14,0,0,0)我知道这样做的丑陋方式,但有一种优雅的方式吗? 最佳答案 您可以使用datetime.timet
当我偶然发现以下内容时,我正在重写一些遗留代码:rounded_val=(len(src_string)/2)*2这利用了integerdivisionbehavior,将字符串的长度值四舍五入到它之前的第一个偶数值。但是整数除法在Python3上即将发生变化,我需要更改这一行。执行此操作的最佳方法是什么? 最佳答案 如果您不喜欢依赖Python2/整数操作数的行为,请改用//底除法:rounded_val=(len(src_string)//2)*2 关于python-将奇数舍入为偶数
大家好,我目前正在做一个学校项目,连我的老师都被难住了。在加拿大,便士已被删除,因此现在所有购买都四舍五入为0或5。例如,5.53将变为5.55,5.52将变为5.50。我试图让我的程序像这样循环,但我不知道该怎么做。我知道如何四舍五入到小数位,但我不知道如何四舍五入到这样的细节。任何帮助将不胜感激!这是我的代码。该项目是关于制作收银员会在咖啡店使用的程序。order=['coffee','tea','hashbrown','jelly','cream','chocolate','glazed','sandwich','bagel','cookie','pannini']quantit
我有一个自动生成的excel文件,其中偶尔会包含非常大的数字,例如135061808695.在excel文件中,当您单击单元格时,它会显示完整数字135061808695然而,在自动“常规”格式下,数字在视觉上显示为1.35063E+11.当我使用ExcelFile时在Pandas中,它提取科学记数法中的值1.350618e+11而不是完整的135061808695.有什么方法可以让Pandas在不弄乱excel文件的情况下提取全部值(value)? 最佳答案 Pandas很可能会提取全部值但不会在其默认输出中显示:df=pd.Da
我对np.round、np.around有问题,它没有正确舍入。我不能包含代码,因为当我手动设置值时(而不是使用我的数据),返回有效,但这里是输出:In[177]:aOut[177]:0.0099999998In[178]:np.round(a,2)Out[178]:0.0099999998In[179]:np.round(a,1)Out[179]:0.0我错过了什么?a的dtype是float32,需要改吗? 最佳答案 尝试创建np.float32(0.01),您会看到答案。您已经获得了精确度。>>>importnumpyasnp
在Python2中rounding从0开始,因此,例如,round(0.5)是1.0。然而,在Python3.x中,rounding是朝着偶数选择的方向进行的,所以round(0.5)是0。我可以在Python3.x中使用什么函数来获得旧行为? 最佳答案 如果您的代码对性能不是特别敏感,您可以使用标准的decimal库来实现您想要的结果。Decimal().quantize()允许选择舍入方法:fromdecimalimportDecimal,ROUND_HALF_UPresult=float(Decimal(0.5).quanti
我在tensorflow中处理小数字,这有时会导致数字不稳定。我想提高结果的精度,或者至少确定结果的界限。以下代码显示了数值错误的具体示例(它输出nan而不是0.0,因为float64不够精确,无法处理1+eps/2):importnumpyasnpimporttensorflowastf#setupeps=np.finfo(np.float64).epsv=eps/2x_init=np.array([v,1.0,-1.0],dtype=np.float64)x=tf.get_variable("x",initializer=tf.constant(x_init))square=tf.
我想在给定的日期上加一个月importdatetimedt=datetime.datetime(year=2014,month=5,day=2)所以我应该得到datetime.datetime(year=2014,month=6,day=2)但与dt=datetime.datetime(year=2015,month=1,day=31)我应该得到datetime.datetime(year=2015,month=3,day=1)因为没有2015-02-31(而且我希望我的结果在后的一天是整数)有些月份有31天,有些月份有30天,有些月份有29天,有些月份有28天!所以添加datetim
我有一个包含数值的csv文件,例如1524.449677。总是有6位小数。当我通过pandasread_csv导入csv文件(和其他列)时,该列自动获取数据类型object。我的问题是这些值显示为2470.6911370000003,实际上应该是2470.691137。或者值2484.30691显示为2484.3069100000002。这在某种程度上似乎是一个数据类型问题。我试图在通过read_csv导入时明确提供数据类型,方法是将dtype参数指定为{'columnname':np.float64}。问题仍然没有消失。我怎样才能让导入的值与源csv文件中的值完全一样?